/**
 * Base64 图片处理工具类
 */

/**
 * 将 base64 字符串转换为图片 URL
 * @param {string} base64String - base64 字符串
 * @returns {string} 图片 URL
 */
export const base64ToImageUrl = (base64String) => {
    if (!base64String) return '';
    
    // 如果已经是完整的 data URL，直接返回
    if (base64String.startsWith('data:')) {
        return base64String;
    }
    
    // 如果不是完整的 data URL，添加前缀
    return `data:image/jpeg;base64,${base64String}`;
};

/**
 * 从后端响应中提取并转换 base64 图片
 * @param {Object} response - 后端响应对象
 * @returns {string} 图片 URL
 */
export const getImageFromResponse = (response) => {
    if (!response || !response.result) return '';
    
    // 如果 result 是 base64 字符串
    if (typeof response.result === 'string') {
        return base64ToImageUrl(response.result);
    }
    
    return '';
};

/**
 * 检查字符串是否为有效的 base64 图片
 * @param {string} str - 要检查的字符串
 * @returns {boolean} 是否为有效的 base64 图片
 */
export const isValidBase64Image = (str) => {
    if (!str) return false;
    
    // 检查是否为 data URL 格式
    if (str.startsWith('data:')) {
        return true;
    }
    
    // 检查是否为纯 base64 字符串
    try {
        return btoa(atob(str)) === str;
    } catch (err) {
        return false;
    }
}; 